home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 233 / Computer Shopper 233 / ComputerShopperDVD233.iso / Toolkit / Internet / SeaMonkey / Language Pack / seamonkey-1.1.en-GB.langpack.xpi / install.js
Encoding:
JavaScript  |  2007-01-08  |  7.0 KB  |  222 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace (dirPath, spaceRequired) {
  3.     var spaceAvailable;
  4.  
  5.     // Get the available disk space on the given path
  6.     spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  7.  
  8.     // Convert the available disk space into kilobytes
  9.     spaceAvailable = parseInt(spaceAvailable / 1024);
  10.  
  11.     // do the verification
  12.     if (spaceAvailable < spaceRequired) {
  13.         logComment ("Insufficient disc space: " + dirPath);
  14.         logComment ("  required : " + spaceRequired + " kB");
  15.         logComment ("  available: " + spaceAvailable + " kB");
  16.         return (false);
  17.     }
  18.     return (true);
  19. }
  20.  
  21. // this function deletes a file if it exists
  22. function deleteThisFile (dirKey, file) {
  23.     var fFileToDelete;
  24.  
  25.     fFileToDelete = getFolder (dirKey, file);
  26.     logComment ("File to delete: " + fFileToDelete);
  27.     if (File.isFile (fFileToDelete)) {
  28.         File.remove(fFileToDelete);
  29.         return (true);
  30.     }
  31.     return (false);
  32. }
  33.  
  34. // this function deletes a folder if it exists
  35. function deleteThisFolder (dirKey, folder, recursiveDelete) {
  36.     var fToDelete;
  37.  
  38.     if (typeof recursiveDelete == "undefined")
  39.         recursiveDelete = true;
  40.  
  41.     fToDelete = getFolder (dirKey, folder);
  42.     logComment ("folder to delete: " + fToDelete);
  43.     if (File.isDirectory(fToDelete)) {
  44.         File.dirRemove (fToDelete, recursiveDelete);
  45.         return (true);
  46.     }
  47.     return (false);
  48. }
  49.  
  50. // OS type detection
  51. // which platform?
  52. function getPlatform() {
  53.     var platformStr;
  54.     var platformNode;
  55.  
  56.     if ('platform' in Install) {
  57.         platformStr = new String (Install.platform);
  58.  
  59.         if (!platformStr.search(/^Macintosh/)) {
  60.             platformNode = 'mac';
  61.         } else if (!platformStr.search(/^Win/)) {
  62.             platformNode = 'win';
  63.         } else if (!platformStr.search(/^OS\/2/)) {
  64.             platformNode = 'win';
  65.         } else {
  66.             platformNode = 'unix';
  67.         }
  68.     } else {
  69.         var fOSMac  = getFolder ("Mac System");
  70.         var fOSWin  = getFolder ("Win System");
  71.  
  72.         logComment ("fOSMac: "  + fOSMac);
  73.         logComment ("fOSWin: "  + fOSWin);
  74.  
  75.         if (fOSMac != null) {
  76.             platformNode = 'mac';
  77.         } else if (fOSWin != null) {
  78.             platformNode = 'win';
  79.         } else {
  80.             platformNode = 'unix';
  81.         }
  82.     }
  83.     return platformNode;
  84. }
  85.  
  86. // main - Consolidated Language & Region Pack
  87. var srDest;
  88. var err;
  89. var fProgram;
  90. var platformNode;
  91.  
  92. var searchPlugins = "searchplugins";
  93. platformNode = getPlatform();
  94. logComment("initInstall: platformNode=" + platformNode);
  95.  
  96. if (platformNode == 'mac') {
  97.     searchPlugins = "Search Plugins";
  98. }
  99.  
  100. // end
  101. // end - OS type detection
  102.  
  103. // ----LOCALIZATION NOTE: translate only these ------
  104. var prettyName = "British English Language and Region Pack";
  105. var langcode = "en";
  106. var regionNode = "GB";
  107. var chromeNode = langcode + "-" + regionNode;
  108. // --- END CHANGEABLE STUFF ---
  109. var regName    = "locales/mozilla/" + chromeNode;
  110. var chromeName = chromeNode + ".jar";
  111. var platformName = chromeNode + "-" + platformNode + ".jar";
  112. var regionJar = regionNode + ".jar";
  113. var localeName = "locale/" + chromeNode + "/";
  114. var regionName = "locale/" + regionNode + "/";
  115.  
  116. srDest = 2209;
  117. err    = initInstall (prettyName, regName, "1.1.0.2007010812");
  118. logComment ("initInstall: " + err);
  119.  
  120. fProgram = getFolder ("Program");
  121. logComment ("fProgram: " + fProgram);
  122.  
  123. if (verifyDiskSpace (fProgram, srDest)) {
  124.     var chromeType = LOCALE;
  125.     var fTarget;
  126.     // Add JARs to installed SM
  127.     err = addDirectory ("",
  128.                         "bin",     // dir name in jar to extract
  129.                         fProgram,  // Where to put this file (Returned from GetFolder)
  130.                         "");       // Force Flag
  131.     logComment ("addDirectory() returned: " + err);
  132.  
  133.     // Add rest of Region Pack to installed SM
  134.     if (err == SUCCESS) {
  135.         fTarget = getFolder ("Program", "defaults");
  136.         logComment ("fTarget: " + fTarget);
  137.         err = addDirectory ("",
  138.                             "reg/defaults",    // dir name in jar to extract
  139.                             fTarget,        // Where to put this file (Returned from GetFolder)
  140.                             "");            // subdir name to create relative to fProgram
  141.         logComment ("addDirectory() returned: " + err);
  142.         if (err == SUCCESS) {
  143.             fTarget = getFolder ("Program", searchPlugins);
  144.             logComment ("fTarget: " + fTarget);
  145.             err = addDirectory ("",
  146.                                 "reg/searchplugins",    // dir name in jar to extract
  147.                                 fTarget,                // Where to put this file (Returned from GetFolder)
  148.                                 "");                    // subdir name to create relative to fProgram
  149.             logComment ("addDirectory() returned: " + err);
  150.         }
  151.     }
  152.  
  153.     if (err != SUCCESS) {
  154.         logComment ("addDirectory() to " + fProgram + "failed!");
  155.         // couldn't install globally, try installing to the profile
  156.         resetError();
  157.         chromeType |= PROFILE_CHROME;
  158.         fProgram = getFolder ("Profile");
  159.         logComment ("try installing to the user profile:" + fProgram);
  160.         err = addDirectory ("","bin",fProgram,"");
  161.     }
  162.  
  163.     setPackageFolder (fProgram);
  164.  
  165.     // check return value
  166.     if (err == SUCCESS) {
  167.         // register chrome
  168.         var cf = getFolder(fProgram, "chrome/"+chromeName);
  169.         var pf = getFolder(fProgram, "chrome/"+platformName);
  170.         var rf = getFolder(fProgram, "chrome/"+regionJar);
  171.  
  172.         registerChrome(chromeType, rf, regionName + "global-region/");
  173.         registerChrome(chromeType, rf, regionName + "communicator-region/");
  174.         registerChrome(chromeType, rf, regionName + "editor-region/");
  175.         registerChrome(chromeType, rf, regionName + "messenger-region/");
  176.         registerChrome(chromeType, rf, regionName + "navigator-region/");
  177.  
  178.         registerChrome(chromeType, cf, localeName + "global/");
  179.         registerChrome(chromeType, cf, localeName + "communicator/");
  180.         registerChrome(chromeType, cf, localeName + "branding/");
  181.  
  182.         registerChrome(chromeType, cf, localeName + "messenger/");
  183.         registerChrome(chromeType, cf, localeName + "messenger-smime/");
  184.  
  185.         registerChrome(chromeType, cf, localeName + "editor/");
  186.         registerChrome(chromeType, cf, localeName + "navigator/");
  187.         registerChrome(chromeType, cf, localeName + "necko/");
  188.         registerChrome(chromeType, cf, localeName + "mozldap/");
  189.         registerChrome(chromeType, cf, localeName + "autoconfig/");
  190.         registerChrome(chromeType, cf, localeName + "cookie/");
  191.         registerChrome(chromeType, cf, localeName + "wallet/");
  192.         registerChrome(chromeType, cf, localeName + "content-packs/");
  193.         registerChrome(chromeType, cf, localeName + "help/");
  194.         registerChrome(chromeType, cf, localeName + "pippki/");
  195.         registerChrome(chromeType, cf, localeName + "pipnss/");
  196.         registerChrome(chromeType, cf, localeName + "p3p/");
  197.  
  198.         registerChrome(chromeType, cf, localeName + "reporter/");
  199.         registerChrome(chromeType, cf, localeName + "chatzilla/");
  200.         registerChrome(chromeType, cf, localeName + "inspector/");
  201.         registerChrome(chromeType, cf, localeName + "venkman/");
  202.         registerChrome(chromeType, cf, localeName + "sroaming/");
  203.  
  204.         registerChrome(chromeType, pf, localeName + "global-platform/");
  205.         registerChrome(chromeType, pf, localeName + "communicator-platform/");
  206.         registerChrome(chromeType, pf, localeName + "navigator-platform/");
  207.         // messenger-mapi package exists only on windows.
  208.         // Register this package only for windows.
  209.         if (platformNode == "win")
  210.             registerChrome(chromeType, cf, localeName + "messenger-mapi/");
  211.  
  212.         err = performInstall();
  213.         logComment("performInstall() returned: " + err);
  214.     } else {
  215.         cancelInstall(err);
  216.         logComment("cancelInstall due to error: " + err);
  217.     }
  218. } else {
  219.     cancelInstall(INSUFFICIENT_DISK_SPACE);
  220. }
  221. // end main
  222.